
#ifndef _MEMBER_BSONNODE_H_
#define _MEMBER_BSONNODE_H_

#include <BMap>
#include <BYamlNode>

#define yaml_member(node)	((member_BYamlNode*)((BYamlNode*)node)->_ptr)

namespace BWE
{
	class YamlFilter
	{
	public:
		YamlFilter(const BString& desc);

		bool operator()(BYamlNode* node) const;

		void addInfo(const BString& text);

		BString					name;
		BArray<BString>			includeTexts;
		BArray<BString>			excludeTexts;
	};
	class member_BYamlNode
	{
	public:
		member_BYamlNode(BYamlNode* sonNode);
		~member_BYamlNode();

		BYamlNode* find(YamlFilter& filter);

		BYamlNode*				boss;
		BYamlNode*				parent;
		int						indent;
		BString					text;
		BString					comment;
		BArray<BYamlNodeHolder>	children;
	};
}

#endif
